/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package GestionEntrenadores;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import gestionJDBC.*;

/**
 *
 * @author Adrian
 */
public class EntrenadoresDB {
    
     private static gestorJDBC gestor = gestorJDBC.getInstance();
     
     public EntrenadoresDB(){
     
     }
     
     public boolean introduceDatos(String nom, Integer tlf ,String Apellido1, String Apellido2, Integer cod_postal, String email,
                                     String dni, String domi, String nacimiento, String loc, String prov, Integer alta){
         boolean valido;
         
         gestor.Conectar();
         valido = gestor.Insertar("INSERT INTO Entrenador (DNI, teléfono, nombre, apellido1,apellido2,email,fe_nac,"
                                + "domicilio,localidad,cp,provincia,alta) "
                                + "VALUES ('"+ dni + "','" + tlf + "','" + nom + "','" + Apellido1 + "','" 
                                + Apellido2 + "','" + email + "','" + nacimiento + "','" 
                                + domi + "','" + loc + "','" + cod_postal + "','" 
                                + prov + "'," + alta + ")");
   
                
         gestor.Desconectar();
         
         return valido;

    }
     
     
     public ArrayList<Entrenador> listarEntrenadores(){
         
        ArrayList<Entrenador> ent = new ArrayList<Entrenador>();
        
        gestor.Conectar();
	ResultSet rs = null;
        
        rs = gestor.Consultar("SELECT * FROM Entrenador where alta=1");
        
        	int i = 0; 
        try{
            
            while(rs.next()){
                
                ent.add(new Entrenador());
                ent.get(i).SetAlta((Integer) rs.getObject("alta"));
                ent.get(i).SetId((Integer) rs.getObject("id_entrenador"));
                ent.get(i).SetDni(rs.getObject("DNI").toString());
                ent.get(i).SetTelefono((Integer) rs.getObject("teléfono"));
                ent.get(i).SetNombre(rs.getObject("nombre").toString());
                ent.get(i).SetApellido1(rs.getObject("apellido1").toString());
                ent.get(i).SetApellido2(rs.getObject("apellido2").toString());
                ent.get(i).SetEmail(rs.getObject("email").toString());
                ent.get(i).SetFecha_nacimiento(rs.getObject("fe_nac").toString());
                ent.get(i).SetDomicilio(rs.getObject("domicilio").toString());
                ent.get(i).SetLocalidad(rs.getObject("localidad").toString());
                ent.get(i).SetCodigo_postal((Integer) rs.getObject("cp"));
                ent.get(i).SetProvincia(rs.getObject("provincia").toString());
                
                i++;
            }
        
        }catch(SQLException e ){
            JOptionPane.showMessageDialog(null,"Error al obtener la lista de entrenadores\n"
							+ e.getMessage());
	}
        
        gestor.Desconectar();
                
        return ent;
                
     }
     
     public ArrayList<Entrenador> listaEntrenadoresFiltro(String n,String a1, String a2 ){
         
       
         
        ArrayList<Entrenador> ent = new ArrayList<Entrenador>();
         
        gestor.Conectar();
	ResultSet rs = null;
        
        rs = gestor.Consultar("SELECT * FROM Entrenador WHERE nombre = '"+ n + "' and "
                                    + "apellido1 = '"+ a1 +"' and apellido2 = '"
                                    + a2 + "' and alta = 1'");        
        int i = 0; 
        try{
            
            while(rs.next()){
                
                ent.add(new Entrenador());
                ent.get(i).SetId((Integer) rs.getObject("id_entrenador"));
                ent.get(i).SetDni(rs.getObject("DNI").toString());
                ent.get(i).SetTelefono((Integer) rs.getObject("teléfono"));
                ent.get(i).SetNombre(rs.getObject("nombre").toString());
                ent.get(i).SetApellido1(rs.getObject("apellido1").toString());
                ent.get(i).SetApellido2(rs.getObject("apellido2").toString());
                ent.get(i).SetEmail(rs.getObject("email").toString());
                ent.get(i).SetFecha_nacimiento(rs.getObject("fe_nac").toString());
                ent.get(i).SetDomicilio(rs.getObject("domicilio").toString());
                ent.get(i).SetLocalidad(rs.getObject("localidad").toString());
                ent.get(i).SetCodigo_postal((Integer) rs.getObject("cp"));
                ent.get(i).SetProvincia(rs.getObject("provincia").toString());
                
                i++;
            }
        
        }catch(SQLException e ){
            JOptionPane.showMessageDialog(null,"Error al obtener la lista de entrenadores\n"
							+ e.getMessage());
	}
        
        gestor.Desconectar();
                
        return ent;

         
     }
   
     public boolean setDatosEntrenador(Integer id, String nom, Integer tlf ,String Apellido1, String Apellido2, Integer cod_postal, String email,
                                     String dni, String domi, String nacimiento, String loc, String prov){
         
         boolean confirmacion;
         
         gestor.Conectar();
         
         confirmacion = gestor.Modificar("UPDATE Entrenador SET nombre='"+ nom+"', apellido1='" + Apellido1 
                                            + "', apellido2='" + Apellido2 
                                            + "',fe_nac ='"+ nacimiento +"', domicilio='"+ domi 
                                            + "', teléfono ='"+ tlf +"', email='" + email + "' ,DNI='" + dni 
                                            + "', cp='"+ cod_postal + "', localidad='" + loc 
                                            + "', provincia='" + prov + "'  WHERE id_entrenador='"+id+"')");
         
         gestor.Desconectar();
         
         return confirmacion;
     }


     public boolean borrarEntrenador(Integer id){
         
           boolean confirmacion;
           
           confirmacion = gestor.Modificar("UPDATE Entrenador SET alta=0 WHERE id_entrenador='"+id+"')");     
           
           return confirmacion;

     }
}
